Plugins

EasyAR Sense Libraries

Plugins
├── Android
│   └── libs
│       ├── arm64-v8a
│       │   └── libEasyAR.so
│       ├── armeabi-v7a
│       │   └── libEasyAR.so
│       └── EasyAR.jar
├── EasyAR.bundle
├── iOS
│   └── easyar.framework
├── x64
│   └── bin
│       └── EasyAR.dll
└── x86
   └── bin
      └── EasyAR.dll

These are libraries of EasyAR Sense under different systems. EasyAR Sense Unity Plugin need to run on the systems using these libraries. They come from the same release package of csapi in EasyAR/Scripts folder.

Android Manifest

Plugins
└── Android
    └── AndroidManifest.xml

AndroidManifest which Unity use to generate Android projects. Permissions of camera, storage and record audio are added in this file. There are also some configurations to make ARCore work. This file is included in the package to make sure all functions from EasyAR Sense can work in Android. Details are,

  • Camera permission: Needed by using camera device.

  • Storage permission: Needed by file storage in samples.

  • Record audio permission: Needed by video recording feature.

  • ARCore configurations: Needed by ARCore feature.

This file does not belong to EasyAR Sense Unity Plugin, it is included to provide configurations to run the plugin. So it can be changed depending on the requirements. And if the same file is used in your project or in other Unity plugins, a manual merge is required to make all functions work. It is very possible that some function will fail to work if simply keep one of them and remove the others. It is suggested to reference Android official documents to merge AndroidManifest, because it will require understanding of the contents of every AndroidManifest.

ARCore Libraries

Plugins
└── Android
    └── libs
        ├── arcore-classes.jar
        ├── arm64-v8a
        │   └── libarcore_sdk_c.so
        └── armeabi-v7a
            └── libarcore_sdk_c.so

EasyAR Sense support ARCore 1.6 and above in current releases. There is no special configuration required to support ARCore in EasyAR Sense Unity Plugin, the libraries and settings are already there. It is still required to install Google Play Services for AR on the device though.

ARCore is not a required dependency. It can also be loaded using other methods, from ARFoundation for example. The plugin script already has the code to load arcore_sdk_c library. It can be disabled in EasyARSettings configuration (ARCoreSupport).

If ARCore feature is not used, it can be disabled by changing ARCoreSupport from EasyARSettings. There will be no difference to keep or remove these libraries in this case.

If ARCore need to be loaded by ARFoundation or other methods, just remove these libraries. ARCore feature will continue to work when ARCoreSupport is enabled.

ARCore SDK Upgrade

The version of the embedded ARCore SDK in the plugin is 1.6, which support Google Play Services for AR 1.6 or later. You can upgrade to newer ARCore SDK.

Use 1.14 as an example. Add the following line in the dependencies of build.gradle in any Android Studio project.

implementation 'com.google.ar:core:1.14.0'

Build the project and core-1.14.0.aar will be available in gradle cache. (Search in <computer user directory>/.gradle)

Extract aar file and replace arcore-classes.jar with classes.jar extracted, replace libarcore_sdk_c.so with corresponding files extracted in jni/armeabi-v7a and jni/arm64-v8a.